package com.rm.zeyou.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 用户订单表
 * </p>
 *
 * @author YanYang
 * @since 2025-03-12 15:55:09
 */
@Getter
@Setter
@TableName("t_technician_item_order")
@ApiModel(value = "TechnicianItemOrder对象", description = "用户订单表")
public class TechnicianItemOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("订单表pk")
      @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("父订单号（如果是加钟订单 父订单号为原订单号）")
    @TableField("partner_order_no")
    private String partnerOrderNo;

    @ApiModelProperty("订单编号")
    @TableField("order_no")
    private String orderNo;

    @ApiModelProperty("微信侧订单号")
    @TableField("transaction_id")
    private String transactionId;

    @ApiModelProperty("用户id")
    @TableField("user_id")
    private Long userId;

    @ApiModelProperty("技师id")
    @TableField("tid")
    private Long tid;

    @ApiModelProperty("项目id")
    @TableField("item_id")
    private Long itemId;

    @ApiModelProperty("项目规格id")
    @TableField("item_specs_id")
    private Long itemSpecsId;

    @ApiModelProperty("项目名")
    @TableField("item_name")
    private String itemName;

    @ApiModelProperty("项目图")
    @TableField("item_picture")
    private String itemPicture;

    @ApiModelProperty("项目时长（分钟）")
    @TableField("item_time")
    private Integer itemTime;

    @ApiModelProperty("地址ID")
    @TableField("address_id")
    private Long addressId;

    @ApiModelProperty("联系人")
    @TableField("address_user_name")
    private String addressUserName;

    @ApiModelProperty("联系电话")
    @TableField("address_tel")
    private String addressTel;

    @ApiModelProperty("服务地点")
    @TableField("address_detail")
    private String addressDetail;

    @ApiModelProperty("服务时间")
    @TableField("service_time")
    private String serviceTime;

    @ApiModelProperty("订单备注")
    @TableField("order_remark")
    private String orderRemark;

    @ApiModelProperty("需要付款金额")
    @TableField("need_pay_price")
    private BigDecimal needPayPrice;

    @ApiModelProperty("订单总金额（实付）")
    @TableField("order_total_price")
    private BigDecimal orderTotalPrice;

    @ApiModelProperty("出行方式")
    @TableField("mode_travel")
    private String modeTravel;

    @ApiModelProperty("项目价格")
    @TableField("order_item_price")
    private BigDecimal orderItemPrice;

    @ApiModelProperty("出行车费")
    @TableField("order_fare_price")
    private BigDecimal orderFarePrice;

    @ApiModelProperty("共优惠金额")
    @TableField("discount_price")
    private BigDecimal discountPrice;

    @ApiModelProperty("是否使用优惠券")
    @TableField("is_user_coupon")
    private Integer isUserCoupon;

    @ApiModelProperty("用户优惠券id")
    @TableField("user_coupon_id")
    private Long userCouponId;

    @ApiModelProperty("优惠券金额")
    @TableField("user_coupon_price")
    private BigDecimal userCouponPrice;

    @ApiModelProperty("支付方式（WX=微信，BALANCE=零钱）")
    @TableField("pay_type")
    private String payType;

    @ApiModelProperty("下单时间")
    @TableField("place_order_time")
    private Date placeOrderTime;

    @ApiModelProperty("支付时间")
    @TableField("pay_time")
    private Date payTime;

    @ApiModelProperty("下单数量")
    @TableField("order_num")
    private Integer orderNum;

    @ApiModelProperty("订单类型（0=正常 1=加钟 2=升级）")
    @TableField("order_type")
    private Integer orderType;

    @ApiModelProperty("订单状态（0=待付款 1=待接单 2=待出发 3=待到达 \n" +
            "4 = 待开始 5=待结束 6=加钟  7=待评价 8=已完成 9 = 已结束  10=已取消  11=售后中 12=退款成功 13 = 退款失败）")
    @TableField("order_status")
    private Integer orderStatus;

    @ApiModelProperty("是否开通会员（0=不开通）")
    @TableField("is_open_membership")
    private Integer isOpenMembership;

    @ApiModelProperty("会员ID")
    @TableField("open_member_id")
    private Long openMemberId;

    @ApiModelProperty("会员开通金额")
    @TableField("open_member_price")
    private BigDecimal openMemberPrice;

    @ApiModelProperty("用户和技师之间的距离（单位：km）")
    @TableField("distance")
    private BigDecimal distance;

    @ApiModelProperty("技师出发位置")
    @TableField("leave_address")
    private String leaveAddress;


    @ApiModelProperty("待接单等待时间")
    @TableField("take_order_wait_time")
    private String takeOrderWaitTime;

    @ApiModelProperty("待开始等待时间")
    @TableField("start_service_wait_time")
    private String startServiceWaitTime;

    @ApiModelProperty("服务总时长")
    @TableField("service_total_time")
    private String serviceTotalTime;

    @ApiModelProperty("接单时间")
    @TableField("take_order_time")
    private Date takeOrderTime;

    @ApiModelProperty("出发时间")
    @TableField("proceed_time")
    private Date proceedTime;

    @ApiModelProperty("到达位置")
    @TableField("arrive_address")
    private String arriveAddress;

    @ApiModelProperty("到达照片")
    @TableField("arrive_picture")
    private String arrivePicture;

    @ApiModelProperty("到达备注")
    @TableField("arrive_remark")
    private String arriveRemark;

    @ApiModelProperty("到达时间")
    @TableField("arrive_time")
    private Date arriveTime;

    @ApiModelProperty("服务开始时间")
    @TableField("start_service_time")
    private Date startServiceTime;

    @ApiModelProperty("服务结束时间")
    @TableField("stop_service_time")
    private Date stopServiceTime;

    @ApiModelProperty("实际服务时长")
    @TableField("real_service_time")
    private String realServiceTime;

    @ApiModelProperty("订单取消时间")
    @TableField("cancel_time")
    private Date cancelTime;

    @ApiModelProperty("订单取消原因")
    @TableField("cancel_reason")
    private String cancelReason;

    @ApiModelProperty("订单取消描述")
    @TableField("cancel_describe")
    private String cancelDescribe;

    @ApiModelProperty("预计收入")
    @TableField("expect_income")
    private BigDecimal expectIncome;

    @ApiModelProperty("订单是否异常（服务结束后技师未离开）")
    @TableField("is_exception")
    private Integer isException;

    @ApiModelProperty("录音文件")
    @TableField("record_url")
    private String recordUrl;

    @ApiModelProperty("是否通知（1=已通知）")
    @TableField("is_notify")
    private Integer isNotify;

    @ApiModelProperty("是否通知技师接单通知（0=已通知）")
    @TableField("is_not_take_order_notify")
    private Integer isNotTakeOrderNotify;



    @ApiModelProperty("逻辑删除（0=未删除，1=已删除）")
    @TableField("is_delete")
    @TableLogic
    private Integer isDelete;

    @ApiModelProperty("更新时间")
      @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty("创建时间")
      @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;


}
